問題一、如何使用兩個 Date 物件來求得執行程式所花費毫秒數?
使用Date來標記現在時間的戳記:
console.log(Date.now()); //1695134905529 每個時間點執行此程式,數字都會不同
配合上題,如何使用Date來計算執行一個程式需要多少時間?
function runProgram() {
for (let i = 0; i < 100000; i++) {}
}
let start = Date.now();
runProgram(); // 要計算執行時間的程式放在這裡
let end = Date.now();
let elapsed = end - start; // 執行程式經過的毫秒數
console.log(elapsed); //7毫秒
問題二、使用Date來抓時間的漏洞是什麼?
如果改掉電腦時間,Date就會抓到不正確的時間了!
先將電腦時間調整到日本時區:
右下角顯示時間欄位>按右鍵> 選擇調整日期和時間> 將時區調整為「日本時區」
在網頁瀏覽器直接寫JavaScript測試Date物件:
new Date.getFullYear(); //2023 今年為2023年
new Date.getDay(); //3 顯示的時間周三 (顯示日本時區的日期)
//getDay執行後出現的數字,0-6 代表周日-週六,以此類推
所以使用Date來抓時間,有一個漏洞,如果將電腦時間改掉,就只會抓到更改掉的時間~
Reference:
https://developer.mozilla.org/zh-TW/docs/Web/JavaScript/Reference/Global_Objects/Date
https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Date/getDay